/*
 * Copyright 2017 Google Inc. All rights reserved.
 *
 * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 * in compliance with the License. You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software distributed under the License
 * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 * or implied. See the License for the specific language governing permissions and limitations under
 * the License.
 */

const httpMocks = require('node-mocks-http');
const path = require('path');
const process = require('process');

const BASE = '../../build/web/nb/';
const bunyan = require(BASE + 'node_modules/bunyan');
const logging = require(BASE + 'logging');
const mkdirp = require(BASE + 'node_modules/mkdirp');

const iloggerMethodNames = [
    'child', 'debug', 'error', 'fatal', 'info', 'trace', 'warn' ];
const iloggerMock = jasmine.createSpyObj('ilogger', iloggerMethodNames);
iloggerMock.child = function() {
  return jasmine.createSpyObj('ilogger', iloggerMethodNames);
}

describe('logging', function() {
  beforeEach(function() {
    spyOn(bunyan, 'createLogger').and.returnValue(iloggerMock);
  });

  it('initializes', function() {
    spyOn(mkdirp, 'sync');
    const appSettings = {
      datalabRoot: '/datalabRoot',
      logFilePath: 'logPath'
    };
    logging.initializeLoggers(appSettings);
    expect(logging.logger).not.toBeNull();
    expect(logging.requestLogger).not.toBeNull();
    expect(logging.jupyterLogger).not.toBeNull();
  });

});
